<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" lang="zh" xml:lang="zh">
<head>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>任务描述符: 实施开发人员测试</title>
<meta content="TaskDescriptor" name="uma.type">
<meta content="implement_developer_test" name="uma.name">
<meta content="实施开发人员测试" name="uma.presentationName">
<meta content="_Ku1-YEofEdqrjq4i3fchvA" name="uma.guid">
<meta content="TaskDescriptor" name="element_type">
<meta content="description" name="filetype">
<meta name="role" content="实施者">
<link type="text/css" href="./../../css/default.css" rel="StyleSheet">
<script language="JavaScript" type="text/javascript" src="./../../scripts/ContentPageResource.js"></script><script language="JavaScript" type="text/javascript" src="./../../scripts/ContentPageSection.js"></script><script language="JavaScript" type="text/javascript" src="./../../scripts/ContentPageSubSection.js"></script><script language="JavaScript" type="text/javascript" src="./../../scripts/ActivityTreeTable.js"></script><script language="JavaScript" type="text/javascript" src="./../../scripts/ProcessElementPage.js"></script><script language="JavaScript" type="text/javascript" src="./../../scripts/ContentPageToolbar.js"></script><script language="JavaScript" type="text/javascript" src="./../../scripts/contentPage.js"></script><script language="JavaScript" type="text/javascript" src="./../../scripts/processElementData.js"></script><script language="JavaScript" type="text/javascript">
					var defaultQueryStr = '?proc={F2AD342D-0F3B-4E19-A351-75ECDCB806F5}&path={F2AD342D-0F3B-4E19-A351-75ECDCB806F5},{26723872-54F2-48C0-8384-0F595BD86EAD},_Ku1-YEofEdqrjq4i3fchvA';
					var backPath = './../../';
					var imgPath = './../../images/';
					var nodeInfo=[{view: "view:_e_O28N7KEdm8G6yT7-Wdqw", path: ["_e_O28N7KEdm8G6yT7-Wdqw", "_vCtak0JHEdq4z9xc-r201w", "_vChNQkJHEdq4z9xc-r201w", "_vChNREJHEdq4z9xc-r201w", "_C6jF0EdlEdqVZeSWHJlGyA", "_lGvUQEdjEdqVZeSWHJlGyA", "_3B7j8EdiEdqVZeSWHJlGyA", "_Ku1-YEofEdqrjq4i3fchvA"]}, {view: "view:_e_O28N7KEdm8G6yT7-Wdqw", path: ["_e_O28N7KEdm8G6yT7-Wdqw", "_vCtak0JHEdq4z9xc-r201w", "_vCtajUJHEdq4z9xc-r201w", "_vCtai0JHEdq4z9xc-r201w", "_dTvnIEdlEdqVZeSWHJlGyA", "_lGvUQEdjEdqVZeSWHJlGyA", "_3B7j8EdiEdqVZeSWHJlGyA", "_Ku1-YEofEdqrjq4i3fchvA"]}, {view: "view:_e_O28N7KEdm8G6yT7-Wdqw", path: ["_e_O28N7KEdm8G6yT7-Wdqw", "_vCtak0JHEdq4z9xc-r201w", "_vCtaj0JHEdq4z9xc-r201w", "_vCtakkJHEdq4z9xc-r201w", "_sz1ksZ5IEdq7s5zuJVEAAw", "_lGvUQEdjEdqVZeSWHJlGyA", "_3B7j8EdiEdqVZeSWHJlGyA", "_Ku1-YEofEdqrjq4i3fchvA"]}, {view: "view:_FCx1oN7CEdmsEI4YDGX2ag", path: ["_FCx1oN7CEdmsEI4YDGX2ag", "_PEpmMCVuEdqSZ9OimJ-AzA", "_-kFhcCVuEdqSZ9OimJ-AzA", "_pV4NgSFsEdqrX8YVzvtlIg", "_C6jF0EdlEdqVZeSWHJlGyA", "_lGvUQEdjEdqVZeSWHJlGyA", "_3B7j8EdiEdqVZeSWHJlGyA", "_Ku1-YEofEdqrjq4i3fchvA"]}, {view: "view:_FCx1oN7CEdmsEI4YDGX2ag", path: ["_FCx1oN7CEdmsEI4YDGX2ag", "_PEpmMCVuEdqSZ9OimJ-AzA", "_SkuIwCVwEdqSZ9OimJ-AzA", "_gM9X0CGFEdqMcovRzkCQow", "_dTvnIEdlEdqVZeSWHJlGyA", "_lGvUQEdjEdqVZeSWHJlGyA", "_3B7j8EdiEdqVZeSWHJlGyA", "_Ku1-YEofEdqrjq4i3fchvA"]}, {view: "view:_FCx1oN7CEdmsEI4YDGX2ag", path: ["_FCx1oN7CEdmsEI4YDGX2ag", "_PEpmMCVuEdqSZ9OimJ-AzA", "_cn2akCVwEdqSZ9OimJ-AzA", "_zUDkgSGFEdqMcovRzkCQow", "_zvv6IEdlEdqVZeSWHJlGyA", "_lGvUQEdjEdqVZeSWHJlGyA", "_3B7j8EdiEdqVZeSWHJlGyA", "_Ku1-YEofEdqrjq4i3fchvA"]}, {view: "view:_FCx1oN7CEdmsEI4YDGX2ag", path: ["_FCx1oN7CEdmsEI4YDGX2ag", "_e_O28N7KEdm8G6yT7-Wdqw", "_vCtak0JHEdq4z9xc-r201w", "_vChNQkJHEdq4z9xc-r201w", "_vChNREJHEdq4z9xc-r201w", "_C6jF0EdlEdqVZeSWHJlGyA", "_lGvUQEdjEdqVZeSWHJlGyA", "_3B7j8EdiEdqVZeSWHJlGyA", "_Ku1-YEofEdqrjq4i3fchvA"]}, {view: "view:_FCx1oN7CEdmsEI4YDGX2ag", path: ["_FCx1oN7CEdmsEI4YDGX2ag", "_e_O28N7KEdm8G6yT7-Wdqw", "_vCtak0JHEdq4z9xc-r201w", "_vCtajUJHEdq4z9xc-r201w", "_vCtai0JHEdq4z9xc-r201w", "_dTvnIEdlEdqVZeSWHJlGyA", "_lGvUQEdjEdqVZeSWHJlGyA", "_3B7j8EdiEdqVZeSWHJlGyA", "_Ku1-YEofEdqrjq4i3fchvA"]}, {view: "view:_FCx1oN7CEdmsEI4YDGX2ag", path: ["_FCx1oN7CEdmsEI4YDGX2ag", "_e_O28N7KEdm8G6yT7-Wdqw", "_vCtak0JHEdq4z9xc-r201w", "_vCtaj0JHEdq4z9xc-r201w", "_vCtakkJHEdq4z9xc-r201w", "_sz1ksZ5IEdq7s5zuJVEAAw", "_lGvUQEdjEdqVZeSWHJlGyA", "_3B7j8EdiEdqVZeSWHJlGyA", "_Ku1-YEofEdqrjq4i3fchvA"]}];
					contentPage.preload(imgPath, backPath, nodeInfo, defaultQueryStr, true, true, false);
				</script>
</head>
<body>
<div id="breadcrumbs"></div>
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<td valign="top">
<div id="page-guid" value="_Ku1-YEofEdqrjq4i3fchvA"></div>
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td nowrap="true" class="pageTitle">任务：实施开发人员测试</td><td width="100%">
<div id="contentPageToolbar" align="right"></div>
</td>
</tr>
</table>
<table cellspacing="0" cellpadding="0" border="0" width="100%">
<tr>
<td class="pageTitleSeparator"><img height="1" title="" alt="" src="./../../images/shim.gif"></td>
</tr>
</table>
<div class="overview">
<table cellpadding="0" cellspacing="0" border="0" width="97%">
<tr>
<td width="50"><img title="" alt="" src="./../../images/taskdes_lg_dgm32.gif"></td><td>
<table cellpadding="0" cellspacing="0" border="0" class="overviewTable">
<tr>
<td valign="top">此任务描述了在对组件执行更正式的测试之前，如何创建用于验证组件是否正常工作的一组测试。</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">用途</div>
<div class="sectionContent">
<table cellpadding="0" cellspacing="0" border="0" class="sectionTable">
<tr valign="top">
<td class="sectionTableSingleCell"><a id="Top" name="Top"></a><a id="XE_Implement_Component__implementation_of_tests_for" name="XE_Implement_Component__implementation_of_tests_for" class="index" key="实施组件（Implement Component）" text="实施测试"></a><a id="XE_unit_test__implementation_of" name="XE_unit_test__implementation_of"></a><a id="XE_Test__Implementing_Developer_Tests" name="XE_Test__Implementing_Developer_Tests" class="index" key="测试（Test）" text="实施开发者测试"></a> 
<ul>
    <li>
        实施一个或多个测试，这些测试通过实际执行来验证单独的软件组件
    </li>
    <li>
        开发可与其他测试（作为更大型测试基础结构的一部分）联合执行的测试
    </li>
</ul></td>
</tr>
</table>
</div>
<div class="sectionHeading">关系</div>
<div class="sectionContent">
<table cellpadding="0" cellspacing="0" border="0" class="sectionTable">
<tr valign="top">
<th scope="row" class="sectionTableHeading">角色</th><td width="30%" class="sectionTableCell"><span class="sectionTableCellHeading">主要:
							</span>
<ul>
<li>
<a href="./../../core.base_rup/capabilitypatterns/rup_implementer_64A09AF9.html" guid="_CR-7gRi2Edq_uI8xTPML6g">实施者</a>
</li>
</ul>
</td><td width="30%" class="sectionTableCell"><span class="sectionTableCellHeading">其他:
							</span></td><td class="sectionTableCell"><span class="sectionTableCellHeading">辅助:
							</span></td>
</tr>
<tr valign="top">
<th scope="row" class="sectionTableHeading">输入</th><td width="30%" class="sectionTableCell"><span class="sectionTableCellHeading">必需:
								</span>
<ul>
<li>
<a href="./../../core.base_rup/capabilitypatterns/rup_implementation_element_EA8BB344.html" guid="_CR404xi2Edq_uI8xTPML6g">实施元素</a>
</li>
</ul>
</td><td width="30%" class="sectionTableCell"><span class="sectionTableCellHeading">可选:
								</span>
<ul>
<li>
<a href="./../../core.base_rup/capabilitypatterns/rup_design_model_6C08AA97.html" guid="_Ku1-YUofEdqrjq4i3fchvA">设计模型</a>
</li>
</ul>
</td><td class="sectionTableCell"><span class="sectionTableCellHeading">外部:
								</span>
<ul>
<li>无</li>
</ul>
</td>
</tr>
<tr valign="top">
<th scope="row" class="sectionTableHeading">输出</th><td colspan="3" class="sectionTableCell">
<ul>
<li>
<a href="./../../core.base_rup/capabilitypatterns/rup_developer_test_17CB912E.html" guid="_CR-7hhi2Edq_uI8xTPML6g">开发人员测试</a>
</li>
</ul>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">步骤</div>
<div class="sectionContent">
<table cellpadding="0" cellspacing="0" border="0" class="sectionTable">
<tr>
<td class="sectionTableCell">
<div class="stepHeading"> 优化范围和确定测试</div>
<div class="stepContent">
<table cellpadding="0" cellspacing="0" border="0" class="stepTable">
<tr valign="top">
<td><a id="Refine_the_Scope_and_Identify_the_Tests" name="Refine_the_Scope_and_Identify_the_Tests"></a>
<div align="left">
    <table border="1" summary="布局表" width="100%" cellspacing="0" cellpadding="4" style="border: 1px solid rgb(128,128,128)"     bordercolorlight="#808080" bordercolordark="#808080">
        <tr>
            <th width="5%">
                目的：
            </th>
            <td width="95%">
                确定被测试组件并定义一组在当前迭代中最有益的测试
            </td>
        </tr>
    </table><br />
</div>
<p>
    在正式环境中，需要开发的组件和测试在测试设计工件中指定，这使此步骤变为可选的。 还有其他情况，在这些情况下开发人员测试是由以下因素驱动的：变更请求、错误修正、需要验证的实施决策和只将设计模型作为输入的子系统测试。对于这些情况中的每一个：
</p>
<ul>
    <li>
        定义目标：子系统／组件接口验证、实施验证，重现缺陷
    </li>
    <li>
        定义范围：子系统、组件、组件组
    </li>
    <li>
        定义测试类型和详细信息：黑匣、白匣、前置条件、后置条件、不变量、输入／输出和执行条件、观测／控制点、清除操作
    </li>
    <li>
        确定什么是测试的生命周期范围；例如，特别为修正缺陷而建立的测试可能是废弃型的测试，而使用外部接口的测试将与被测试的组件具有相同的生命周期
    </li>
</ul></td>
</tr>
</table>
</div>
<div class="stepHeading"> 选择合适的实施技术</div>
<div class="stepContent">
<table cellpadding="0" cellspacing="0" border="0" class="stepTable">
<tr valign="top">
<td><a id="Select_Appropriate_Implementation_Technique" name="Select_Appropriate_Implementation_Technique"></a>
<div align="left">
    <table border="1" width="100%" cellspacing="0" cellpadding="4" style="border: 1px solid rgb(128,128,128)"     bordercolor="#808080" bordercolorlight="#808080" bordercolordark="#808080">
        <tr>
            <th width="5%">
                目的：
            </th>
            <td width="95%">
                确定合适的技术来实施测试
            </td>
        </tr>
    </table><br />
</div>
<p>
    存在各种技术可用于实施测试，但可按照两个常规类别来考虑它们：手动测试和自动测试。大多数开发人员测试是使用自动测试技术实施的：
</p>
<ul>
    <li>
        已编程的测试，使用与被测试组件相同的软件编程技术和环境，或使用简单些的编程语言和工具（如，脚本语言：tcl、基于 shell 等等）。
    </li>
    <li>
        已记录或捕获的测试，通过使用测试自动化工具构造，这些工具捕获被测试组件与系统其余部分的交互并生成基本测试
    </li>
    <li>
        已生成的测试：测试的某些方面（过程或是测试数据）可使用更复杂的测试自动化工具自动生成
    </li>
</ul>虽然最常用的方法是“已编程的测试”，例如在某些情况下是 GUI 相关测试，但进行测试的最高效的方法是按照以文本描述形式捕获的一系列指示信息手动进行。</td>
</tr>
</table>
</div>
<div class="stepHeading"> 实施测试</div>
<div class="stepContent">
<table cellpadding="0" cellspacing="0" border="0" class="stepTable">
<tr valign="top">
<td><a id="Implement_the_Test" name="Implement_the_Test"></a>
<div align="left">
    <table border="1" width="100%" cellspacing="0" cellpadding="4" style="border: 1px solid rgb(128,128,128)"     bordercolorlight="#808080" bordercolordark="#808080">
        <tr>
            <th width="5%">
                目的：
            </th>
            <td width="95%">
                实施在定义步骤或任务中确定的测试
            </td>
        </tr>
    </table><br />
</div>
<p>
    实施在第一步中定义的所有元素。详述并明确指定测试环境前置条件以及使被测试组件处于可执行测试的状态的步骤。确定要遵循的清除步骤，以便将环境恢复到初始状态。特别注意观测／控制点的实施，因为这些方面可能需要必须在被测试组件中实施的特殊支持。
</p></td>
</tr>
</table>
</div>
<div class="stepHeading"> 建立外部数据集</div>
<div class="stepContent">
<table cellpadding="0" cellspacing="0" border="0" class="stepTable">
<tr valign="top">
<td><a id="Establish_External_Data_Sets" name="Establish_External_Data_Sets"></a>
<div align="left">
    <table border="1" width="100%" cellspacing="0" cellpadding="4" style="border: 1px solid rgb(128,128,128)"     bordercolorlight="#808080" bordercolordark="#808080">
        <tr>
            <th width="5%">
                目的：
            </th>
            <td width="95%">
                创建和维护存储在测试外部并由测试在执行期间使用的数据
            </td>
        </tr>
    </table><br />
</div>
<p>
    在大多数情况下，将测试数据从测试中分离出来会使解决方案更可维护。如果测试的生命周期范围很短，对测试内的数据进行硬编码会更高效，但如果需要在多个测试执行周期中使用不同的数据集，那么最简单的方法是将数据集存储在外部。
    如果将测试数据从测试中分离出来，还有一些其他好处：
</p>
<ul>
    <li>
        多个测试可使用同一个数据集
    </li>
    <li>
        易于修改和／或增加
    </li>
    <li>
        可用于控制测试内的条件转移逻辑
    </li>
</ul></td>
</tr>
</table>
</div>
<div class="stepHeading"> 验证测试实施</div>
<div class="stepContent">
<table cellpadding="0" cellspacing="0" border="0" class="stepTable">
<tr valign="top">
<td><a id="Verify_the_Test_Implementation" name="Verify_the_Test_Implementation"></a>
<div align="left">
    <table border="1" width="100%" cellspacing="0" cellpadding="4" style="border: 1px solid rgb(128,128,128)"     bordercolorlight="#808080" bordercolordark="#808080">
        <tr>
            <th width="5%">
                目的：
            </th>
            <td width="95%">
                验证测试工作方式正确
            </td>
        </tr>
    </table><br />
</div>
<p>
    测试该测试。检查环境设置和清除指令。运行测试，观察行为并修正测试缺陷。如果测试是长期的，则让具有较少内部知识的人员来运行测试，并检查是否存在足够的支持信息。与开发团队中的其他人和其他相关各方一起复审测试。
</p></td>
</tr>
</table>
</div>
<div class="stepHeading"> 维护可跟踪性关系</div>
<div class="stepContent">
<table cellpadding="0" cellspacing="0" border="0" class="stepTable">
<tr valign="top">
<td><a id="Maintain_Traceability_Relationships" name="Maintain_Traceability_Relationships"></a>
<div align="left">
    <table border="1" width="100%" cellspacing="0" cellpadding="4" style="border: 1px solid rgb(128,128,128)"     bordercolorlight="#808080" bordercolordark="#808080">
        <tr>
            <th width="5%">
                目的：
            </th>
            <td width="95%">
                允许在被跟踪项上执行影响分析和评估报告
            </td>
        </tr>
    </table><br />
</div>
<p>
    根据正式程度，可能需要也可能不需要维护可跟踪性关系。如果需要，使用测试计划中概述的可跟踪性需求来按要求更新可跟踪性关系。
</p><br /></td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">属性</div>
<div class="sectionContent">
<table cellpadding="0" cellspacing="0" border="0" class="sectionTable">
<tr valign="top">
<th scope="row" class="sectionTableHeading" id="property_多次出现" abbr="多次出现">多次出现</th><td align="left" class="sectionTableCell" headers="property_多次出现"><img title="" alt="" height="15" width="20" src="./../../images/indent.gif"></td>
</tr>
<tr valign="top">
<th scope="row" class="sectionTableHeading" id="property_事件驱动" abbr="事件驱动">事件驱动</th><td align="left" class="sectionTableCell" headers="property_事件驱动"><img title="" alt="" height="15" width="20" src="./../../images/indent.gif"></td>
</tr>
<tr valign="top">
<th scope="row" class="sectionTableHeading" id="property_正在进行" abbr="正在进行">正在进行</th><td align="left" class="sectionTableCell" headers="property_正在进行"><img title="" alt="" height="15" width="20" src="./../../images/indent.gif"></td>
</tr>
<tr valign="top">
<th scope="row" class="sectionTableHeading" id="property_可选" abbr="可选">可选</th><td align="left" class="sectionTableCell" headers="property_可选"><img title="" alt="" height="15" width="20" src="./../../images/indent.gif"></td>
</tr>
<tr valign="top">
<th scope="row" class="sectionTableHeading" id="property_已计划" abbr="已计划">已计划</th><td align="left" class="sectionTableCell" headers="property_已计划"><img title="" alt="" height="15" width="20" src="./../../images/indent.gif"></td>
</tr>
<tr valign="top">
<th scope="row" class="sectionTableHeading" id="property_可重复" abbr="可重复">可重复</th><td align="left" class="sectionTableCell" headers="property_可重复"><img title="" alt="" height="15" width="20" src="./../../images/indent.gif"></td>
</tr>
</table>
</div>
<div class="sectionHeading">更多信息</div>
<div class="sectionContent">
<table cellpadding="0" cellspacing="0" border="0" class="sectionTable">
<tr valign="top">
<th scope="row" class="sectionTableHeading">指南</th><td class="sectionTableCell">
<ul>
<li>
<a href="./../../core.base_rup/guidances/guidelines/maintaining_automated_test_suites_C1BF312D.html" guid="2.0721213907815595E-305">维护自动测试套件</a>
</li>
<li>
<a href="./../../core.base_rup/guidances/guidelines/unit_test_9A3F053.html" guid="9.315724622037552E-305">单元测试</a>
</li>
<li>
<a href="./../../core.base_rup/guidances/guidelines/test_case_81FD1D9F.html" guid="1.3981505661923931E-304">测试用例</a>
</li>
</ul>
</td>
</tr>
<tr valign="top">
<th scope="row" class="sectionTableHeading">工具向导</th><td class="sectionTableCell">
<ul>
<li>
<a href="./../../core.base_rup/guidances/toolmentors/implement_auto_component_test_181D7854.html" guid="{CE38BCE7-D8E1-460F-ADF0-1FC94CB1D7E2}">使用 Rational QualityArchitect 实现自动化组件测试</a>
</li>
<li>
<a href="./../../core.base_rup/guidances/toolmentors/record_test_scripts_7A61D605.html" guid="{279B8DDC-F3D9-4087-87CE-AC8D718D8C8E}">使用 Rational Robot 实施测试脚本</a>
</li>
<li>
<a href="./../../core.base_rup/guidances/toolmentors/implement_developer_tests_23B4C147.html" guid="{FD49B4B3-FA09-4475-A99A-DA8EBBEA220E}">使用 Rational Test RealTime 实施开发者测试</a>
</li>
</ul>
</td>
</tr>
</table>
</div>
<table cellpadding="0" cellspacing="0" border="0" class="copyright">
<tr>
<td class="copyright"><p>
    &copy; &nbsp;Copyright IBM Corp.&nbsp;1987, 2006. &nbsp;All Rights Reserved.
</p></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
<script type="text/javascript" language="JavaScript">
					contentPage.onload();
					contentPage.processPage.fixDescriptorLinks();
				</script>
</html>
